package net.anzhuo.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import net.anzhuo.common.entity.PaginationVO;
import net.anzhuo.common.enums.ResultEnum;
import net.anzhuo.common.utils.ExceptionUtil;
import net.anzhuo.dao.GsZhuanliMapper;
import net.anzhuo.entity.GsZhuanli;
import net.anzhuo.service.GsZhuanliService;

@Service
public class GsZhuanliServiceImpl implements GsZhuanliService {

	@Autowired
	private GsZhuanliMapper gsZhuanliMapper;

	@Override
	public PaginationVO<GsZhuanli> getListWithPage(GsZhuanli gsZhuanli) {
		PaginationVO<GsZhuanli> paginationVO = new PaginationVO<>();
		paginationVO.setList(gsZhuanliMapper.getListWithPage(gsZhuanli));
		paginationVO.setTotalCount(gsZhuanliMapper.getCount(gsZhuanli));
		paginationVO.setTotalPage((gsZhuanliMapper.getCount(gsZhuanli)  -1)  / gsZhuanli.getPageSize()+1);
		paginationVO.setPageNo(gsZhuanli.getPageNo());
		return paginationVO;
	}

	@Override
	public GsZhuanli getById(Long id) {
		return gsZhuanliMapper.getById(id);
	}

	@Override
	public List<GsZhuanli> getList() {
		return gsZhuanliMapper.getList();
	}

	@Override
	public List<GsZhuanli> getList(GsZhuanli gsZhuanli) {
		return gsZhuanliMapper.getListByQuery(gsZhuanli);
	}

	@Override
	@Transactional(rollbackFor=Throwable.class)
	public void update(GsZhuanli gsZhuanli) {
		gsZhuanliMapper.update(gsZhuanli);
	}

	@Override
	@Transactional(rollbackFor=Throwable.class)
	public void save(GsZhuanli gsZhuanli) {
		gsZhuanliMapper.save(gsZhuanli);
	}

	@Override
	@Transactional(rollbackFor=Throwable.class)
	public void delete(GsZhuanli gsZhuanli) {
		gsZhuanliMapper.delete(gsZhuanli);
	}

	@Override
	public List<GsZhuanli> getByMd5(String md5) {
		return gsZhuanliMapper.getByMd5(md5);
	}
}
